package com.jinmdz.fmis.dao.model.search;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jinmdz.fmis.common.annotation.AnColumn;
import com.jinmdz.fmis.common.annotation.AnTable;
import com.jinmdz.fmis.core.base.BaseBean;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 费用查询
 *
 * @author GuanKui
 * @date 2020/2/26 10:39
 */
@AnTable(value = "Sheet", title = "费用查询")
public class SearchChargeViewItem extends BaseBean {

    /**
     * 业务编码
     */
    @AnColumn(value = "业务编码", index = 1)
    private String businessCode;

    /**
     * 逝者姓名
     */
    @AnColumn(value = "逝者姓名", index = 2)
    private String deadName;

    /**
     * 服务项目名称
     */
    @AnColumn(value = "项目名称", index = 3)
    private String itemName;

    /**
     * 项目价格
     */
    @AnColumn(value = "项目价格", index = 4)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal itemPrice;

    /**
     * 项目数量
     */
    @AnColumn(value = "项目数量", index = 5)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal itemNumber;

    /**
     * 项目单位
     */
    @AnColumn(value = "项目单位", index = 6)
    private String itemUnit;

    /**
     * 项目金额
     */
    @AnColumn(value = "项目金额", index = 7)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal itemCharge;

    /**
     * 优惠金额
     */
    @AnColumn(value = "优惠金额", index = 8)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal discountCharge;

    /**
     * 惠民金额
     */
    @AnColumn(value = "惠民金额", index = 9)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal benefitCharge;

    /**
     * 实际收费金额
     */
    @AnColumn(value = "实际收费金额", index = 10)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal realityCharge;

    /**
     * 费用时间
     */
    @AnColumn(value = "费用时间", pattern = BaseBean.yyyy_MM_dd_HH_mm, index = 11)
    @JsonFormat(pattern = yyyy_MM_dd_HH_mm)
    private Date chargeTime;

    /**
     * 是否结算
     */
    @JsonIgnore
    private Integer asSettled;

    /**
     * 是否结算
     */
    @AnColumn(value = "是否结算", index = 12)
    private String asSettledText;

    /**
     * 结算批次编号
     */
    @AnColumn(value = "结算批次编号", index = 13)
    private String settleBatchNo;

    /**
     * 结算时间
     */
    @AnColumn(value = "结算时间", pattern = BaseBean.yyyy_MM_dd_HH_mm, index = 14)
    @JsonFormat(pattern = yyyy_MM_dd_HH_mm)
    private Date settleTime;

    /**
     * 发票号
     */
    @AnColumn(value = "发票号", index = 15)
    private String invoiceNo;

    /**
     * 收据号
     */
    @AnColumn(value = "收据号", index = 16)
    private String receiptNo;

    /**
     * 收款人
     */
    @AnColumn(value = "收款人", index = 17)
    private String settleUserName;

    /**
     * 备注
     */
    @AnColumn(value = "备注", index = 18)
    private String remark;

    public String getBusinessCode() {
        return businessCode;
    }

    public SearchChargeViewItem setBusinessCode(String businessCode) {
        this.businessCode = businessCode;
        return this;
    }

    public String getDeadName() {
        return deadName;
    }

    public SearchChargeViewItem setDeadName(String deadName) {
        this.deadName = deadName;
        return this;
    }

    public String getItemName() {
        return itemName;
    }

    public SearchChargeViewItem setItemName(String itemName) {
        this.itemName = itemName;
        return this;
    }

    public BigDecimal getItemPrice() {
        return itemPrice;
    }

    public SearchChargeViewItem setItemPrice(BigDecimal itemPrice) {
        this.itemPrice = itemPrice;
        return this;
    }

    public BigDecimal getItemNumber() {
        return itemNumber;
    }

    public SearchChargeViewItem setItemNumber(BigDecimal itemNumber) {
        this.itemNumber = itemNumber;
        return this;
    }

    public String getItemUnit() {
        return itemUnit;
    }

    public SearchChargeViewItem setItemUnit(String itemUnit) {
        this.itemUnit = itemUnit;
        return this;
    }

    public BigDecimal getItemCharge() {
        return itemCharge;
    }

    public SearchChargeViewItem setItemCharge(BigDecimal itemCharge) {
        this.itemCharge = itemCharge;
        return this;
    }

    public BigDecimal getDiscountCharge() {
        return discountCharge;
    }

    public SearchChargeViewItem setDiscountCharge(BigDecimal discountCharge) {
        this.discountCharge = discountCharge;
        return this;
    }

    public BigDecimal getBenefitCharge() {
        return benefitCharge;
    }

    public SearchChargeViewItem setBenefitCharge(BigDecimal benefitCharge) {
        this.benefitCharge = benefitCharge;
        return this;
    }

    public BigDecimal getRealityCharge() {
        return realityCharge;
    }

    public SearchChargeViewItem setRealityCharge(BigDecimal realityCharge) {
        this.realityCharge = realityCharge;
        return this;
    }

    public Date getChargeTime() {
        return chargeTime;
    }

    public SearchChargeViewItem setChargeTime(Date chargeTime) {
        this.chargeTime = chargeTime;
        return this;
    }

    public Integer getAsSettled() {
        return asSettled;
    }

    public SearchChargeViewItem setAsSettled(Integer asSettled) {
        this.asSettled = asSettled;
        return this;
    }

    public String getAsSettledText() {
        return asSettledText;
    }

    public SearchChargeViewItem setAsSettledText(String asSettledText) {
        this.asSettledText = asSettledText;
        return this;
    }

    public String getSettleBatchNo() {
        return settleBatchNo;
    }

    public SearchChargeViewItem setSettleBatchNo(String settleBatchNo) {
        this.settleBatchNo = settleBatchNo;
        return this;
    }

    public Date getSettleTime() {
        return settleTime;
    }

    public SearchChargeViewItem setSettleTime(Date settleTime) {
        this.settleTime = settleTime;
        return this;
    }

    public String getInvoiceNo() {
        return invoiceNo;
    }

    public SearchChargeViewItem setInvoiceNo(String invoiceNo) {
        this.invoiceNo = invoiceNo;
        return this;
    }

    public String getReceiptNo() {
        return receiptNo;
    }

    public SearchChargeViewItem setReceiptNo(String receiptNo) {
        this.receiptNo = receiptNo;
        return this;
    }

    public String getSettleUserName() {
        return settleUserName;
    }

    public SearchChargeViewItem setSettleUserName(String settleUserName) {
        this.settleUserName = settleUserName;
        return this;
    }

    public String getRemark() {
        return remark;
    }

    public SearchChargeViewItem setRemark(String remark) {
        this.remark = remark;
        return this;
    }
}
